跳转至

关键字与运算符

Java 关键字

abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return short static strictfp super
switch synchronized this throw throws
transient try void volatile while

逻辑 / 位运算符优先级

! > && > ||
~ > & > |

运算符优先级

当两个运算符的优先级相同,则按照结合性的顺序求值

level operator description Associativity
16 [] . () 访问数组元素、对象成员、括号 left to right
15 ++ -- 后置自增自减 not associative
14 ++ -- + - ! ~ 前置自增自减、一元加减、一元位取反、一元逻辑非 not associative
13 () new 转换、创建对象 right to left
12 * / % 乘除法 left to right
11 + - + 加减法、字符串拼接 left to right
10 << >> >>> 移位运算符 left to right
9 < <= > >= instanceof 关系运算符 not associative
8 == != 判断等于 left to right
7 & 位与 left to right
6 ^ 位异或 left to right
5 \| 位或 left to right
4 && 逻辑与 left to right
3 \|\| 逻辑或 left to right
2 ?: 三元运算符 right to left
1 = += -= *= /= %= &= ^= \|= <<= >>= >>>= 赋值 right to left

德摩根定律

!(A && B) = !A || !B
!(A || B) = !A && !B

!(A && B && C) = !A || !B || !C
!(A || B || C) = !A && !B && !C

左移右移

  • <<: 左移,右边补零
  • >>: 右移,左边补最高位
  • >>>: 右移,左边补零

不懂的地方

L6 PPT P21,P22